package com.iking.housekeeping.dao.dept;

import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.iking.housekeeping.entity.dept.SysDept;
import com.iking.housekeeping.httpbean.dept.reqbean.ReturnSysDept;
import com.iking.housekeeping.httpbean.dept.resbean.DeptDetail;

/**
 * 系统组织架构Mapper
 * 
 * @author 秦甫杰
 *
 */
@Mapper
public interface SysDeptMapper {
	/**
	 * 根据id删除部门
	 * 
	 * @param fId
	 * @return
	 */
	int deleteByPrimaryKey(String fId);

	/**
	 * 添加部门
	 * 
	 * @param record
	 * @return
	 */
	int insert(SysDept record);

	/**
	 * 添加部门
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(SysDept record);

	/**
	 * 根据id查看部门
	 * @param fId
	 * @return
	 */
	SysDept selectByPrimaryKey(String fId);

	/**
	 * 更新部门
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(SysDept record);

	/**
	 * 更新部门
	 * @param record
	 * @return
	 */
	int updateByPrimaryKey(SysDept record);

	/**
	 * 查询父级部门的数据
	 * @param pCode
	 * @return
	 */
	List<SysDept> selectSysDeptByPCode(String pCode);

	/**
	 * 根据部门名称查看部门
	 * @param name
	 * @return
	 */
	SysDept selectSysDeptByDName(String name);

	/**
	 * 根据code模糊查询
	 * @param code
	 * @return
	 */
	List<SysDept> selectListDeptByCode(String code);

	/**
	 * 查询全部菜单
	 * 
	 * @return
	 */
	List<ReturnSysDept> selectAll();
	/**
	 * 查询根节点
	 * @return
	 */
	List<SysDept> selectList();
	
	/**
	 * 根据部门id查询所有的部门
	 * @param depts
	 * @return
	 */
	List<String> selectSysDeptByDeptId(List<String> depts);

	/**
	 * 根据部门ID查询部门详情
	 * @param fId
	 * @return
	 */
	DeptDetail selectDeptDetailById(String fId);
	/**
	 * 根据管理员查询部门列表
	 * @param userIdList
	 * @return
	 */
	int upDateByAdmin(List<String> userIdList);

	/**
	 * 根据id判断用户是否为区域管理员
	 * * @param fId
	 * @return
	 */
	List<SysDept> selectAdminById(String fId);
	/**
	 * 根据id判断用户是否为区域管理员

	 * @return
	 */
	List<SysDept> selectdepCod(String fId);
}